<?php
 Session_Start () ;
 If (!$_SESSION ["repertoire_config"]) { Header ("Location: ../../sortie.php?sortie=3") ; }
 Include ($_SESSION ["repertoire_config"]."/garennes.cfg") ;
 Include ($_SESSION ["repertoire_config"]."/init.php") ;
 Include ($_SESSION ["repertoire_config"]."/verifications.php") ;
 Include ("../include/config.inc") ;
 verif_droits ($droit_courant, $_SESSION ["code"]) ;
 
 $debug = 0 ;
 
 $resultats = SQL_commande ("SELECT * FROM menus WHERE numero='".$droit_courant."' AND ordre='0'", $id_sql) ;
 $l = SQL_tableau_associatif ($resultats, "") ;
 
 Function verification_enseignant ($professeurs)
  {
   Global $id_sql, $ctl, $code_absent, $code_non_rendu, $code_dispense, $debug ;
   $l [0] = 0 ;
   $l [1] = "" ;
   For ($i = 0 ; $i < SQL_nbr_lignes ($professeurs) ; $i++)
    {
     $prof = SQL_tableau_associatif ($professeurs, "") ;
     $l [0]++ ;
     $l [1] .= "- V&eacute;rification des notes de ".$prof ["nom"]." ".$prof ["prenom"]." -" ;
     $classes = SQL_commande ("SELECT classe FROM services_prof WHERE professeur='".$prof ["id_utilisateur"]."'", $id_sql) ;
     For ($j = 0 ; $j < SQL_nbr_lignes ($classes) ; $j++)
      {
       $classe = SQL_ligne_suivante ($classes, "") ;
       $r = verification_notes_enseignant ($prof ["id_utilisateur"], $classe [0], $debug) ;
       If ($r [0] > 1)
        {
         $l [0] += $r [0] ;
         $l [1] .= $r [1] ;
        }
       Else { $l [0]++ ; $l [1] .= "\n" ; }
      }
     If ($r [0] == 1) { $l [1] .= "> Correct !\n" ; $l [0]++ ; }
     Else { $l [0]++ ; $l [1] .= "\n" ; }
    }
   Return $l ;
  }
 
 $verif = var_courante ("verif", 0, null) ;
 If (IsSet ($verif))
  {
   If ($verif > 0)
    {
     // Purge initiale
     $ok = SQL_commande ("DELETE FROM groupes_classe WHERE service_classe='0' AND millesime='".millesime (0)."'", $id_sql) ;
     $ok = SQL_commande ("DELETE FROM groupes_eleve WHERE groupe='0' AND millesime='".millesime (0)."'", $id_sql) ;
     $ok = SQL_commande ("DELETE FROM options_eleve WHERE service_classe='0' AND millesime='".millesime (0)."'", $id_sql) ;
     $ok = SQL_commande ("DELETE FROM notes WHERE controle='0' AND millesime='".millesime (0)."'", $id_sql) ;
     // Purge des options
     $options = SQL_commande ("SELECT id_option_eleve,eleve FROM options_eleve WHERE millesime='".millesime (0)."'", $id_sql) ;
     For ($i = 0 ; $i < SQL_nbr_lignes ($options) ; $i++)
      {
       $opt = SQL_ligne_suivante ($options) ;
       $ok = SQL_commande ("SELECT id_eleve FROM eleves WHERE id_eleve='".$opt [1]."' LIMIT 1", $id_sql) ;
       If (SQL_nbr_lignes ($ok)  == 0)
        {
         $ok = SQL_commande ("DELETE FROM options_eleve WHERE id_option_eleve='".$opt [0]."'", $id_sql) ;
        }
      }
     // Purge des groupes
     // Groupe d'eleve sans les eleves
     $groupes = SQL_commande ("SELECT id_groupe_eleve,eleve FROM groupes_eleve WHERE millesime='".millesime (0)."'", $id_sql) ;
     For ($i = 0 ; $i < SQL_nbr_lignes ($groupes) ; $i++)
      {
       $grp = SQL_ligne_suivante ($groupes) ;
       $ok = SQL_commande ("SELECT id_eleve FROM eleves WHERE id_eleve='".$grp [1]."' LIMIT 1", $id_sql) ;
       If (SQL_nbr_lignes ($ok)  == 0)
        {
         $ok = SQL_commande ("DELETE FROM groupes_eleve WHERE id_groupe_eleve='".$grp [0]."'", $id_sql) ;
        }
      }
     // Groupes identiques
     $groupes = SQL_commande ("SELECT g.id_groupe_eleve,g.eleve,g.groupe FROM groupes_eleve g, groupes_eleve e
                                WHERE g.eleve=e.eleve AND g.repere1=e.repere1 AND g.repere2=e.repere2 AND g.discipline=e.discipline
				  AND g.code_disc=e.code_disc AND g.groupe=e.groupe AND g.id_groupe_eleve!=e.id_groupe_eleve
                                  AND g.millesime='".millesime (0)."' AND e.millesime='".millesime (0)."' ORDER BY eleve,groupe", $id_sql) ;
     If (SQL_nbr_lignes ($groupes) > 0)
      {
       $grp = SQL_ligne_suivante ($groupes) ;
       $id_eleve = $grp [1] ;
       $id_groupe = $grp [2] ;
       For ($i = 1 ; $i < SQL_nbr_lignes ($groupes) ; $i++)
        {
         $grp = SQL_ligne_suivante ($groupes) ;
	 If ($grp [1] == $id_eleve)
	  {
	   If ($grp [2] == $id_groupe)
	    {
	     $ok = SQL_commande ("DELETE FROM groupes_eleve WHERE id_groupe_eleve='".$grp [0]."' LIMIT 1", $id_sql) ;
	    }
	   Else
	    {
	     $id_groupe = $grp [2] ;
	    }
	  }
	 Else
	  {
	   $id_eleve = $grp [1] ;
           $id_groupe = $grp [2] ;
	  }
	}
      }
     // Purge des notes
     $notes = SQL_commande ("SELECT id_note,eleve FROM notes WHERE millesime='".millesime (0)."'", $id_sql) ;
     For ($i = 0 ; $i < SQL_nbr_lignes ($notes) ; $i++)
      {
       $nts = SQL_ligne_suivante ($notes) ;
       $ok = SQL_commande ("SELECT id_eleve FROM eleves WHERE id_eleve='".$nts [1]."' LIMIT 1", $id_sql) ;
       If (SQL_nbr_lignes ($ok)  == 0)
        {
         $ok = SQL_commande ("DELETE FROM notes WHERE id_note='".$nts [0]."'", $id_sql) ;
        }
      }
     $purge = var_courante ("purge", 0, 0) ;
     $prof = var_courante ("prof", 0, 0) ;
     Switch ($verif)
      {
       Case 1 : // Verification des colonnes sans notes d'un professeur
                $ligne [0] = 0 ;
	        $ligne [1] = "" ;
		If ($purge)
		 {
  	          $r = purger_colonnes_sans_notes ($prof, 1) ;
		  $ligne [0] += $r [0] ;
	          $ligne [1] .= $r [1]."\n" ; ;
                 }
                // Verification des notes d'un professeur
  	        $ctl = 0 ;
		$professeurs = SQL_commande ("SELECT * FROM utilisateurs WHERE id_utilisateur='".$prof."' AND millesime='".millesime (0)."' LIMIT 1", $id_sql) ;
  	        $r = verification_enseignant ($professeurs) ;
		$ligne [0] += $r [0] ;
	        $ligne [1] .= $r [1] ;
	        Break ;
       Case 2 : // Verification des colonnes sans notes de tous les professeurs
                $compteur = 0 ;
	        $ctl = 0 ;
		$ligne [0] = 1 ;
		$ligne [1] = "---- V&eacute;rification des notes de tous les enseignants ----\n" ;
		If ($purge)
		 {
		  $professeurs = SQL_commande ("SELECT id_utilisateur FROM utilisateurs WHERE droits='".$droit_prof."' AND millesime='".millesime (0)."' ORDER BY nom,prenom", $id_sql) ;
		  For ($i = 0 ; $i < SQL_nbr_lignes ($professeurs) ; $i++)
		   {
		    $p = SQL_ligne_suivante ($professeurs) ;
  	            $r = purger_colonnes_sans_notes ($p [0], 1) ;
                    $ligne [0] += $r [0] ;
	            $ligne [1] .= $r [1]."\n" ;
                   }
                 }
                // Verification de toutes les notes
		$professeurs = SQL_commande ("SELECT id_utilisateur,nom,prenom FROM utilisateurs WHERE droits='".$droit_prof."' AND millesime='".millesime (0)."' ORDER BY nom,prenom", $id_sql) ;
		$r = verification_enseignant ($professeurs) ;
		$ligne [0] += $r [0] ;
	        $ligne [1] .= $r [1] ;
	        Break ;
       Case 3 : // Verification de tous les eleves
                $compteur = 0 ;
	        $table [0] = 0 ;
	        $ctl = 0 ;
	        $nbr_lignes = 1 ;
                $notes = SQL_commande ("SELECT id_note,eleve,repere1,repere2 FROM notes WHERE millesime='".millesime (0)."'", $id_sql) ;
		$ligne [0] = 0 ;
		$ligne [1] = "---- V&eacute;rification de la base &eacute;l&egrave;ves ----\n" ;
	        For ($i = 0 ; $i < SQL_nbr_lignes ($notes) ; $i++)
	         {
	          $nt = SQL_tableau_associatif ($notes, "") ;
                  $eleves = SQL_commande ("SELECT id_eleve FROM eleves WHERE id_eleve='".$nt ["eleve"]."' LIMIT 1", $id_sql) ;
                  If (SQL_nbr_lignes ($eleves) == 0)
               	   {
	  	    $compteur++ ;
		    $ligne [0]++ ;
		    $ligne [1] .= $compteur."- L'&eacute;l&egrave;ve ".$nt ["eleve"]." (".$nt ["repere1"]."-".$nt ["repere2"].") n'existe plus dans la base.\n" ;
		    $ctl = 1 ;
		    $table [0]++ ;
		    $table [$table [0]] = $nt ["id_note"] ;  
		   }
	         }
	        For ($i = 1 ; $i <= $table [0] ; $i++)
	         {
	          $ok = SQL_commande ("DELETE FROM notes WHERE id_note='".$table [$i]."'", $id_sql) ;
	         }
	        If ($ctl == 0) { $ligne [1] .= "Rien &agrave; signaler !\n" ; $ligne [0]++ ; }
	        Break ;
      }
     $mess = 3 ;
    }
   Else
    {
     // Procedure d'appel pour faire patienter
     $verif = var_courante ("verif", 0, 0) ;
     $purge = var_courante ("purge", 0, 0) ;
     $prof = var_courante ("prof", 0, 0) ;
     Echo "<HTML>" ;
     Echo "<HEAD><TITLE>Garennes.</TITLE>" ;
     Echo "<META HTTP-EQUIV=\"REFRESH\" CONTENT=\"1;url='verif_notes.php?verif=".(-$verif)."&prof=".$prof."&purge=".$purge."'\">" ;
     Echo "</HEAD>" ;
     Echo "<BODY BACKGROUND=\"../images/fond.png\" onContextMenu=\"return false\">" ;
     Echo "<CENTER><B>V&eacute;rification des notes/contr&ocirc;les en cours...<BR>Veuillez patienter S.V.P.</B><BR>MERCI&nbsp;!<BR>" ;
     Echo "<a href=\"./verif_notes.php?verif=".(-$verif)."&prof=".$prof."&purge=".$purge."\">" ;
     Echo "<IMG SRC=\"../../images/attente.gif\" BORDER=\"1\" STYLE=\"border:1px solid #000000\"></a></CENTER>" ;
     Echo "</BODY></HTML>" ;
     Exit ;
    }
  }
 If (!IsSet ($prof)) { $prof = 0 ; }
 Echo "<HTML><HEAD>" ;
 entete_html ("Garennes - Menu", "", 1) ;
 Echo styles ("none", "none", "none", $l ["lien"], "none") ;
 Echo "</HEAD>" ;
 
 Echo "<BODY BACKGROUND=\"../images/fond.png\" TEXT=\"#000000\" onContextMenu=\"return false\">" ;
 Echo "<CENTER>V&eacute;rification de la base</CENTER>" ;
 
 If (IsSet ($mess)) { affiche_message ($mess, $ligne) ; }

 Echo "<TABLE BORDER=\"0\" CELLPADDING=\"0\" CELLSPACING=\"1\" ALIGN=\"CENTER\">" ;
 Echo "<TR>" ;
 Echo "<TD>" ;
 Echo "<TABLE BORDER=\"1\" CELLPADDING=\"0\" CELLSPACING=\"0\" BGCOLOR=\"".$l ["couleur_fond"]."\" WIDTH=\"100%\" STYLE=\"border:1px solid #000000;border-collapse:collapse\">" ;
 Echo "<TR>" ;
 Echo "<TD>" ;
 Echo "<TABLE BORDER=\"0\" CELLPADDING=\"0\" CELLSPACING=\"0\" WIDTH=\"100%\">" ;
 Echo "<TR BGCOLOR=\"".$l ["lien"]."\"><TD ALIGN=\"CENTER\"><FONT SIZE=\"".$l ["titre"]."\"><B>&nbsp;V&eacute;rification&nbsp;de&nbsp;la&nbsp;base&nbsp;&eacute;l&egrave;ves&nbsp;</B></FONT></TD></TR>" ;
 Echo "<TR><TD><FONT SIZE=\"".$l ["titre"]."\">&nbsp;</FONT></TD></TR>" ;
 Echo "<TR>" ;
 Echo "<FORM ACTION=\"./verif_notes.php\" METHOD=\"POST\">" ;
 Echo "<INPUT TYPE=\"HIDDEN\" NAME=\"verif\" VALUE=\"-3\">" ;
 Echo "<INPUT TYPE=\"HIDDEN\" NAME=\"prof\" VALUE=\"0\">" ;
 Echo "<TD ALIGN=\"CENTER\">&nbsp;<INPUT TYPE=\"SUBMIT\" NAME=\"submit\" VALUE=\"  Lancer la v&eacute;rification  \">&nbsp;</TD>" ;
 Echo "</FORM>" ;
 Echo "</TR>" ;
 Echo "<TR><TD><FONT SIZE=\"".$l ["titre"]."\">&nbsp;</FONT></TD></TR>" ;
 Echo "</TABLE>" ;
 Echo "</TD></TR></TABLE>" ;
 Echo "</TD></TR>" ;
 $professeurs = SQL_commande ("SELECT * FROM utilisateurs WHERE droits='".$droit_prof."' AND millesime='".millesime (0)."' ORDER BY nom,prenom", $id_sql) ;
 If (SQL_nbr_lignes ($professeurs) > 0)
  {
   Echo "<TR><TD>&nbsp;</TD></TR>" ;
   Echo "<TR><TD>" ;
   Echo "<TABLE BORDER=\"1\" CELLPADDING=\"0\" CELLSPACING=\"0\" BGCOLOR=\"".$l ["couleur_fond"]."\" WIDTH=\"100%\" STYLE=\"border:1px solid #000000;border-collapse:collapse\">" ;
   Echo "<TR><TD>" ;
   Echo "<TABLE BORDER=\"0\" CELLPADDING=\"0\" CELLSPACING=\"0\" WIDTH=\"100%\">" ;
   Echo "<TR BGCOLOR=\"".$l ["lien"]."\"><TD ALIGN=\"CENTER\"><FONT SIZE=\"".$l ["titre"]."\"><B>&nbsp;V&eacute;rification&nbsp;de&nbsp;la&nbsp;base&nbsp;des&nbsp;notes&nbsp;d'un&nbsp;ou&nbsp;plusieurs&nbsp;enseignants&nbsp;</B></FONT></TD></TR>" ;
   Echo "<TR><TD><FONT SIZE=\"".$l ["titre"]."\">&nbsp;</FONT></TD></TR>" ;
   Echo "<TR>" ;
   Echo "<FORM ACTION=\"./verif_notes.php\" METHOD=\"POST\">" ;
   Echo "<INPUT TYPE=\"HIDDEN\" NAME=\"verif\" VALUE=\"-2\">" ;
   Echo "<INPUT TYPE=\"HIDDEN\" NAME=\"prof\" VALUE=\"0\">" ;
   Echo "<TD ALIGN=\"CENTER\"><INPUT TYPE=\"SUBMIT\" NAME=\"submit\" VALUE=\" Tous les enseignants \"></TD>" ;
   Echo "</TR>" ;
   Echo "<TR><TD ALIGN=\"CENTER\">&nbsp;<INPUT TYPE=\"CHECKBOX\" NAME=\"purge\" VALUE=\"1\" CHECKED>" ;
   Echo "&nbsp;Purge&nbsp;les&nbsp;colonnes&nbsp;de&nbsp;notes&nbsp;sans&nbsp;notes&nbsp;</TD></TR>" ;
   Echo "</FORM>" ;
   Echo "<TR><TD><FONT SIZE=\"".$l ["titre"]."\">&nbsp;</FONT></TD></TR>" ;
   Echo "<TR BGCOLOR=\"".$l ["lien"]."\"><TD ALIGN=\"CENTER\"><FONT SIZE=\"".$l ["titre"]."\">&nbsp;<B>ou&nbsp;un&nbsp;enseignant&nbsp;parmi</B>&nbsp;</FONT></TD></TR>" ;
   Echo "<TR><TD>&nbsp;</TD></TR>" ;
   Echo "<TR>" ;
   Echo "<FORM ACTION=\"./verif_notes.php\" METHOD=\"POST\">" ;
   Echo "<INPUT TYPE=\"HIDDEN\" NAME=\"verif\" VALUE=\"-1\">" ;
   Echo "<TD ALIGN=\"CENTER\">&nbsp;<SELECT NAME=\"prof\">" ;
   For ($i = 0 ; $i < SQL_nbr_lignes ($professeurs) ; $i++)
    {
     $p = SQL_tableau_associatif ($professeurs, "") ;
     Echo "<OPTION VALUE=\"".$p ["id_utilisateur"]."\"" ;
     If ($prof == $p ["id_utilisateur"]) { Echo " SELECTED" ; }
     Echo ">".$p ["nom"]." ".$p ["prenom"]."</OPTION>" ;
    }
   Echo "</SELECT>&nbsp;</TD>" ;
   Echo "</TR>" ;
   Echo "<TR><TD ALIGN=\"CENTER\">&nbsp;<INPUT TYPE=\"CHECKBOX\" NAME=\"purge\" VALUE=\"1\" CHECKED>" ;
   Echo "&nbsp;Purge&nbsp;les&nbsp;colonnes&nbsp;de&nbsp;notes&nbsp;sans&nbsp;notes&nbsp;</TD></TR>" ;
   Echo "<TR>" ;
   Echo "<TD ALIGN=\"CENTER\">&nbsp;<INPUT TYPE=\"IMAGE\" SRC=\"../images/valider.png\" NAME=\"submit\">&nbsp;</TD>" ;
   Echo "</FORM>" ;
   Echo "</TR>" ;
   Echo "<TR><TD>&nbsp;</TD></TR>" ;
  }
 Echo "</TABLE>" ;
 Echo "</TD></TR></TABLE>" ;
 Echo "</TD></TR></TABLE>" ;
 Echo "</BODY></HTML>" ;
?>